package com.wei.czz.framework.blog.service;

import com.wei.czz.common.tool.PageDto;
import com.wei.czz.common.vo.blog.tag.TagFormVo;
import com.wei.czz.framework.blog.entity.TagEntity;

import java.util.List;

/**
 * Created by IntelliJ IDEA.
 *
 * @author wei
 * date: 2021-03-15 10:29:26
 * className: TagService 博客标签操作请求服务接口
 * version: 1.0
 * description:
 */
public interface TagService {

    /**
     * 保存或编辑博客标签操作
     * @param tag 标签对象
     */
    void saveOrEdit(TagEntity tag);

    /**
     * 获取博客标签操作
     * @param id 标签主键
     * @return 标签对象
     */
    TagEntity get(Long id);

    /**
     * 获取博客标签操作
     * @param name 标签名称
     * @return 标签对象
     */
    TagEntity find(String name);

    /**
     * 获取博客标签操作
     * @param tagIdList 博客标签主键列表
     * @return 博客标签列表
     */
    List<TagEntity> getTagList(List<String> tagIdList);

    /**
     * 分页查询博客标签列表操作
     * @param tagFormVo 参数对象
     */
    PageDto<TagEntity> getPageList(TagFormVo tagFormVo);

    /**
     * 获取所有博客标签操作
     * @return 博客标签列表
     */
    List<TagEntity> getList();

    /**
     * 获取博客标签下一个默认排序等级操作
     * @return 下一个默认排序等级
     */
    Integer getNextSort();

    /**
     * 批量更新博客标签操作
     * @param tagList 博客标签列表
     */
    void batchUpdate(List<TagEntity> tagList);

}

